"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.LoginFormPage = LoginFormPage;

var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));

var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));

var _jsxRuntime = require("react/jsx-runtime");

var _proProvider = require("@ant-design/pro-provider");

var _antdV = require("antd-v4");

var _react = require("react");

var _ProForm = require("../ProForm");

require("./index.less");

var _excluded = ["logo", "message", "style", "activityConfig", "backgroundImageUrl", "title", "subTitle", "actions", "children"];

function LoginFormPage(props) {
  var logo = props.logo,
      message = props.message,
      style = props.style,
      _props$activityConfig = props.activityConfig,
      activityConfig = _props$activityConfig === void 0 ? {} : _props$activityConfig,
      backgroundImageUrl = props.backgroundImageUrl,
      title = props.title,
      subTitle = props.subTitle,
      actions = props.actions,
      children = props.children,
      proFormProps = (0, _objectWithoutProperties2.default)(props, _excluded);
  var intl = (0, _proProvider.useIntl)();

  var genSubmitButtonProps = function genSubmitButtonProps() {
    var _proFormProps$submitt, _proFormProps$submitt2;

    if (proFormProps.submitter === false) return false;
    if (((_proFormProps$submitt = proFormProps.submitter) === null || _proFormProps$submitt === void 0 ? void 0 : _proFormProps$submitt.submitButtonProps) === false) return false;
    return (0, _objectSpread2.default)({
      size: 'large',
      style: {
        width: '100%'
      }
    }, (_proFormProps$submitt2 = proFormProps.submitter) === null || _proFormProps$submitt2 === void 0 ? void 0 : _proFormProps$submitt2.submitButtonProps);
  };

  var submitter = (0, _objectSpread2.default)((0, _objectSpread2.default)({
    searchConfig: {
      submitText: intl.getMessage('loginForm.submitText', '登录')
    },
    render: function render(_, dom) {
      return dom.pop();
    }
  }, proFormProps.submitter), {}, {
    submitButtonProps: genSubmitButtonProps()
  });
  var context = (0, _react.useContext)(_antdV.ConfigProvider.ConfigContext);
  var baseClassName = context.getPrefixCls('pro-form-login-page');

  var getCls = function getCls(className) {
    return "".concat(baseClassName, "-").concat(className);
  };
  /** 生成logo 的dom，如果是string 设置为图片 如果是个 dom 就原样保留 */


  var logoDom = (0, _react.useMemo)(function () {
    if (!logo) return null;

    if (typeof logo === 'string') {
      return (0, _jsxRuntime.jsx)("img", {
        src: logo
      });
    }

    return logo;
  }, [logo]);
  return (0, _jsxRuntime.jsxs)("div", {
    className: baseClassName,
    style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, style), {}, {
      backgroundImage: "url(\"".concat(backgroundImageUrl, "\")")
    }),
    children: [(0, _jsxRuntime.jsx)("div", {
      className: getCls('notice'),
      children: activityConfig && (0, _jsxRuntime.jsxs)("div", {
        className: getCls('notice-activity'),
        style: activityConfig.style,
        children: [activityConfig.title && (0, _jsxRuntime.jsxs)("div", {
          className: getCls('notice-activity-title'),
          children: [" ", activityConfig.title, " "]
        }), activityConfig.subTitle && (0, _jsxRuntime.jsxs)("div", {
          className: getCls('notice-activity-subTitle'),
          children: [" ", activityConfig.subTitle, " "]
        }), activityConfig.action && (0, _jsxRuntime.jsxs)("div", {
          className: getCls('notice-activity-action'),
          children: [" ", activityConfig.action, " "]
        })]
      })
    }), (0, _jsxRuntime.jsxs)("div", {
      className: getCls('container'),
      children: [(0, _jsxRuntime.jsxs)("div", {
        className: getCls('top'),
        children: [title || logoDom ? (0, _jsxRuntime.jsxs)("div", {
          className: getCls('header'),
          children: [logoDom ? (0, _jsxRuntime.jsx)("span", {
            className: getCls('logo'),
            children: logoDom
          }) : null, title ? (0, _jsxRuntime.jsx)("span", {
            className: getCls('title'),
            children: title
          }) : null]
        }) : null, subTitle ? (0, _jsxRuntime.jsx)("div", {
          className: getCls('desc'),
          children: subTitle
        }) : null]
      }), (0, _jsxRuntime.jsxs)("div", {
        className: getCls('main'),
        children: [(0, _jsxRuntime.jsxs)(_ProForm.ProForm, (0, _objectSpread2.default)((0, _objectSpread2.default)({
          isKeyPressSubmit: true
        }, proFormProps), {}, {
          submitter: submitter,
          children: [message, children]
        })), actions ? (0, _jsxRuntime.jsx)("div", {
          className: getCls('other'),
          children: actions
        }) : null]
      })]
    })]
  });
}